package com.atguigu.yygh.common.exception;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.atguigu.yygh.common.result.Result;

/** 
 *是Spring3.2提供的新注解,它是一个Controller增强器,
 *可对controller中被  @RequestMapping 注解的方法加一些逻辑处理。最常用的就是异常处理 
 *需要配合@ExceptionHandler使用
 *当将异常抛到controller时,可以对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面
*/
@ControllerAdvice
public class GlobalExceptionHandler {

	/**
	 * 若程序执行 出现异常  那该方法就会执行
	 * @param e
	 * @return
	 */
	@ResponseBody
	@ExceptionHandler(Exception.class)
	public Result error(Exception e){
		e.printStackTrace();
		return Result.fail();
	}
	
	/**
	 * 自定义 异常
	 * @param e
	 * @return
	 */
	@ResponseBody
	@ExceptionHandler(YyghException.class)
	public Result error(YyghException e){
		e.printStackTrace();
		return Result.fail();
	}
}
